//
//  TestTableViewController.swift
//  jianfeiApp2C
//
//  Created by Mac on 2020/4/20.
//  Copyright © 2020 com.yanjiuyuan. All rights reserved.
//

import Foundation

//class TestTableViewController: HJBasicViewController {
//    let disposeBag = DisposeBag()
//
//    override func viewDidLoad() {
//        super.viewDidLoad()
//
//        view.addSubview(tableView)
//
//        self.showNavBarView = true
//        self.titleStr = "测试tableview"
//        self.leftBtn.isHidden = false
//
//        tableView.snp.remakeConstraints { (maker) in
//            maker.top.equalToSuperview().offset(HJNavBarHeight)
//            maker.left.bottom.right.equalToSuperview()
//        }
//
//        if isIphoneX {
//            tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 34, right: 0)
//        }
//        bindViewModel()
//    }
//
//    lazy var tableView: TestTableView = {
//        let tb = TestTableView()
//        tb.canEdit = true
//        tb.separatorStyle = .none
//        return tb
//    }()
//
//    lazy var viewModel: TestTableViewModel = {
//        let vm = TestTableViewModel()
//        return vm
//    }()
//}
//
//extension TestTableViewController {
//    func bindViewModel() {
//        viewModel.dataSource
//            .observeOn(MainScheduler.instance)
//            .subscribe(onNext: { [weak self] (vms) in
//                guard let `self` = self else {
//                    return
//                }
//
//                let section = JFCTableViewSection.init(key: "default", viewModels: vms)
//                self.tableView.sections = [section]
//            })
//            .disposed(by: disposeBag)
//
//        tableView.didSelectRowCallback = { (vm, sectionModel) in
//            print("点击了\(vm)---\(sectionModel)")
//
//        }
//    }
//}
//
//
//class TestTableView: JFCTableView {
//    override init(frame: CGRect, style: UITableView.Style) {
//        super.init(frame: .zero, style: .plain)
//
//        separatorStyle = .none
//        if #available(iOS 11.0, *) {
//            contentInsetAdjustmentBehavior = .never
//            estimatedRowHeight = 0
//            estimatedSectionFooterHeight = 0
//            estimatedSectionHeaderHeight = 0
//        }
//    }
//
//    required init?(coder aDecoder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
//}
//
//class TestCell: UITableViewCell {
//
//    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
//        super.init(style: style, reuseIdentifier: reuseIdentifier)
//    }
//
//    required init?(coder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
//
//    func bind(viewModel: TestCellViewModel) {
//        self.textLabel?.text = viewModel.title
//        self.detailTextLabel?.text = viewModel.detail
//    }
//}
//
//extension TestCell: JFCCellProtocol {
//    func configCell(viewModel: Any) {
//        if let vm = viewModel as? TestCellViewModel {
//            bind(viewModel: vm)
//        }
//    }
//}
//
//class TestTableViewModel: NSObject {
//    // 数据源
//    let dataSource: BehaviorRelay<[JFCCellViewModelProtocol]> = BehaviorRelay(value: [])
//
//    override init() {
//        super.init()
//
//        requestData()
//    }
//
//    // 请求网络数据
//    func requestData() {
//        DispatchQueue.global(qos: .default).async {
//            var vms: [JFCCellViewModelProtocol] = []
//            for index in 0...50 {
//                let title = "标题-----\(index)"
//                let detail = "详情-----\(index)"
//                let vm = TestCellViewModel.init(title: title, detail: detail, cellHeight: 60.0)
//                vms.append(vm)
//            }
//
//            self.dataSource.accept(vms)
//        }
//    }
//}
//
//class TestCellViewModel: NSObject {
//    let title: String
//    let detail: String
//    let height: CGFloat
//
//    init(title: String, detail: String, cellHeight: CGFloat) {
//        self.title = title
//        self.detail = detail
//        self.height = cellHeight
//        super.init()
//    }
//}
//
//extension TestCellViewModel: JFCCellViewModelProtocol {
//    var cellHeight: CGFloat {
//        return height
//    }
//
//    var identifier: String {
//        return "TestCell"
//    }
//
//    func register(to tableView: UITableView) {
//        tableView.register(TestCell.self, forCellReuseIdentifier: identifier)
//    }
//}
